%!TEX program = xelatex

\documentclass[utf8]{beamer}

\usepackage{ctex}
\usepackage{url}

\usepackage{graphicx}
\usepackage{pythonhighlight}

\usetheme{focus}

\title{网络数据统计分析\\ Web Data and Statistical Analysis}
\subtitle{欢迎来到网络时代}

\author{Song}

\titlegraphic{\includegraphics[scale=1.25]{focuslogo.pdf}}
\institute{之江学院}

\date{}

\begin{document}
    \begin{frame}
        \maketitle
    \end{frame}
    
    \section{Web page}
    \begin{frame}[allowframebreaks]{HTML}
       HTML是一种网页标记语言.

       \begin{figure}
  \centering
  % Requires \usepackage{graphicx}
  \includegraphics[scale=0.17]{html.eps}
  \caption{HTML 代码片段}
\end{figure}

 \begin{figure}
  \centering
  % Requires \usepackage{graphicx}
  \includegraphics[scale=0.15]{tag.eps}
  \caption{HTML 构成: 有许许多多的标签(tags)构成树形结构}
\end{figure}

 \begin{figure}
  \centering
  % Requires \usepackage{graphicx}
  \includegraphics[scale=0.17]{tree.eps}
  \caption{HTML 树结构}
\end{figure}
    \end{frame}

    \begin{frame}[allowframebreaks]{Libraries}

        \begin{enumerate}[1)]
            \item 标准库
            urllib+urllib.request+re
            \item
            requests + beautifulSoup/pyQuery (+ 网页解析器 lxml) (推荐)
            \item 动态网页 selenium/requenium
        \end{enumerate}

    \end{frame}

    \begin{frame}{步骤、简易框架}
        
        \begin{enumerate}[1)]
            \item 读取网页文本
            \item
            解析文本获得数据
            \item
            分析、存储数据
        \end{enumerate}
         \begin{figure}
  \centering
  % Requires \usepackage{graphicx}
  \includegraphics[scale=0.4]{framework.eps}
  \caption{网络爬虫简易框架}
\end{figure}
    \end{frame}
    
    
    \begin{frame}{我的作品}
       展示我的作品

       \begin{figure}
  \centering
  % Requires \usepackage{graphicx}
  \includegraphics[scale=0.3]{crawler.eps}
  \caption{网络爬虫形象化}
\end{figure}
    \end{frame}

    \section{学习}

    \begin{frame}[allowframebreaks]{学习 BeautifulSoup}
        \begin{enumerate}[1)]
            \item 
            构造BeautifulSoup类, Tag类
            \item
            搜索方法: find方法, find\_all方法 （掌握）
            \begin{enumerate}[i)]
                \item 标签名
                \item 单值属性, id
                \item 多值属性, class
                \item 函数, 正则表达式 (了解)
            \end{enumerate}

            \item
            属性: name, text, 便签, 属性获取 （掌握）
            \item
            CSS 选择器: select （了解）
        \end{enumerate}

        展示我的作品, 展示网上作品\url{https://www.cnblogs.com/forever-snow/p/8506746.html}, \url{https://blog.csdn.net/c406495762/article/details/72597755}

        爬虫项目集锦\url{https://www.77169.com/html/170460.html}
        
    \end{frame}

        \begin{frame}[allowframebreaks]{学习 BeautifulSoup 实例1}
        获取之江主页标题.

\inputpython{zjc_script.py}{1}{16}

        
\end{frame}
    
    \begin{frame}[allowframebreaks]{学习 BeautifulSoup 实例2}
        获取百度词条摘要.

\inputpython{baidupedia.py}{1}{21}

        
\end{frame}

    \begin{frame}[allowframebreaks]{学习 BeautifulSoup 实例3}
        获取之江学院新闻.

\inputpython{zjc_script.py}{18}{29}

        
\end{frame}

\begin{frame}{总结}
       \begin{table}
  \centering
  \begin{tabular}{c|c|c}
   \hline
    re & beautifulSoup & 选择器\\
    \hline
    不够精确 & 精确定位 & 精确定位 \\
    \hline
    有难度 & 难度低 & 难度低 \\
    \hline
  不用查看源文件 & 查看源文件 & 查看源文件 \\
      \hline
    不用了解HTML & 了解HTML & 了解HTML \\
      \hline
    手动 & 手动 & 自动（复制粘贴） \\
      \hline
  \end{tabular}
  \caption{HTML元素选择方法总结}
\end{table}
\end{frame}

    \section{框架}
    \begin{frame}{Scrapy 框架}
        \begin{block}{Scrapy}
            A fast high-level screen scraping and web crawling framework.
        \end{block}

        展示我的作品
    \end{frame}
    
    \begin{frame}{PySpider}
       blah,blah...
    \end{frame}

    \begin{frame}{其他框架}
      Grab, cola
    \end{frame}
    

    \begin{frame}{Related Lib}
        \begin{enumerate}
            \item
        邮件: envelopes, imbox
            \item
        RSS解析器: feedparser
        \item
        Wiki百科: wikipedia
        \item
        下载器: wget, youtube-ld, you-get, bilibili-user/bilibili-video
        \item 
        网站/聊天 APIs: Douyin-Bot, weChat/itchat, qqbot(已失效), zhihu-python
        \item
        新闻: newspaper3k
        \end{enumerate}
    \end{frame}
    
    \section{数据处理}
      \begin{frame}{数据表示、统计学、机器学习}
        \begin{enumerate}[1)]
        \item
        标配: numpy, scipy, matplotlib, pandas
        \item
        顶配: statsmodels, scikit-learn
        \item
        重量级: tensorflow
        \end{enumerate}
    \end{frame}

    \begin{frame}{文本处理}
        \begin{enumerate}[1)]
            \item
        自然语言处理: nltk, gensim
        \item
        中文处理: snowNlp
        \item
        分词: jieba
        \item
        可视化: wordcloud
        \end{enumerate}
    \end{frame}

 \begin{frame}{统计分析}
        \begin{enumerate}[1)]
        \item
        基础: numpy,scipy
        \item
        表示、存储: pandas, networkx
        \item
        统计: statsmodels, rpy2
        \item
        机器学习: scikit-learn
        \item
        可视化: wordcloud, matplotlib
        \end{enumerate}
    \end{frame}


    \section{评级}
    \begin{frame}{等价}
        \begin{table}
  \centering
  \begin{tabular}{c|c|c}
   \hline
    认识HTML & Lv1 & 菜鸟 \\
    \hline
    学会requests & Lv2 & 入门 \\
    \hline
    学会beautifulSoup &  Lv3 & 达人\\
    \hline
    学会正则表达式 &  Lv4 & 大师\\
    \hline
    学会写简单的爬虫api &  Lv5 & 大神\\
    \hline
    学会其他的网络编程，邮件，订阅RSS &  Lv6 & 大神\\
    \hline
  $\vdots$ & $\vdots$ & $\vdots$\\
      \hline
    学习scrapy等框架 & Lv x & 天梯 \\
      \hline
    实战开发 & Lv $\infty$ & skr \\
     \hline
  \end{tabular}
  \caption{带着想象力去学习, 张开想象的翅膀翱翔天际}
\end{table}
    \end{frame}

    \begin{frame}
       \begin{block}{爱翁的格言，也是我的教学理念}
      想象力比知识更重要，因为知识是有限的，而想象力概括着世界的一切，推动着进步，并且是知识进化的源泉。严格地说，想象力是科学研究中的实在因素。
————  爱因斯坦
        \end{block}
    \end{frame}

\end{document}
